package com.liu.sms.linster;

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.liu.common.utils.JacksonUtil;
import com.liu.sms.util.SmsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Component
@RabbitListener(queues = "CAPTCHA_CODE")
@Slf4j
public class SmsListener {

    @Autowired
    private SmsUtil smsUtil;


    @Value("${aliyun.sms.template_code}")
    private String template_code;

    @Value("${aliyun.sms.sign_name}")
    private String sign_name;


//   消息处理
    @RabbitHandler
    public void sendSms(Map<String,String> map){

     log.debug("map:{}",map);
     log.debug("template_code:{}",template_code);
     log.debug("sign_name:{}",sign_name);
     Map sendMsg= new HashMap();
     sendMsg.put("code",map.get("code"));
  /*    try {
            SendSmsResponse sendSmsResponse= smsUtil.sendSms(map.get("mobile"),template_code,sign_name, JacksonUtil.toJSon(sendMsg));
//            //todo 这里需要考虑的两个地方，
//            // todo 一个是string param 这里的string是一个json对象的字符串 ，第二种情况是账户余额问题，当你的账户余额没有的时候，短信是发布出去的
//            // todo ，建议在这个位置对返回值进行一个判定，最常见isv.AMOUNT_NOT_ENOUGH 余额不足 、isv.MOBILE_NUMBER_ILLEGAL 非法手机号
//            // todo public SendSmsResponse sendSms(String mobile,String template_code,String sign_name,String param)
//
        } catch (ClientException e) {
            e.printStackTrace();

     }*/
        log.info("短信发送成功：{}",map.get("code"));


    }




}
